package com.ruoyi.common.base.domain;

import java.io.Serializable;
import java.util.List;

/**
 * @author cx
 * @date 2023/6/8
 * @apiNote
 */
public interface BaseMapper<T> {
    /**
     * 根据id查询
     *
     * @param t
     */
    T selectById(Serializable id);


    /**
     * 根据多个id查询
     *
     * @param id 标识ID 可以是自增长ID，也可以是唯一标识。
     */
    List<T>  selectByIds(Serializable ids);

    /**
     * 根据对象查询
     *
     * @param t
     */
    List<T> selectList(T t);

    /**
     * 查询数量
     * (T t)
     */
    int selectCount();

    /**
     * 插入数据
     *
     * @param id 标识ID 可以是自增长ID，也可以是唯一标识。
     * @return
     */
    int insert(T t);
    /**
     * 更新数据
     *
     * @param id 标识ID 可以是自增长ID，也可以是唯一标识。
     * @return
     */

    int update(T t);

    /**
     * 删除数据
     *
     * @param id 标识ID 可以是自增长ID，也可以是唯一标识。
     * @return
     */
    int delete(Serializable id);
    /**
     * 根据多个ID删除数据
     *
     * @param id 标识ID 可以是自增长ID，也可以是唯一标识。
     * @return
     */

    int deleteByIds(String[] ids);


    /**
     * 根据多个ID删除数据
     *
     * @param id 标识ID 可以是自增长ID，也可以是唯一标识。
     * @return
     */

    int deleteByIds(Long[] ids);
}
